package com.lpf.db_pools;

import java.sql.ResultSet;
import java.sql.SQLException;

public class MyPoolTest {

    // 准备一个连接对象
    private static MyPoolsImpl poolsImpl = PoolManager.getInstace();

    /**
     * 写一个单个连接查询的方法 也是在连接池管理类里面拿数据连接管道
     * 查询业务
     */
    public synchronized static void selectDate() {

        PooledConnection connection = poolsImpl.getConnection();
        ResultSet rs = connection.queryBySql("SELECT * FROM user WHERE uid = 1");
        System.out.println(Thread.currentThread().getName());

        try {
            while (rs.next()) {
                System.out.print(rs.getString("uid") + "\t\t");
                System.out.print(rs.getString("user_name") + "\t\t");
                System.out.print(rs.getString("password") + "\t\t");
                System.out.println();
            }

            // 业务做完   没有关闭
            rs.close();

            // 释放这个连接管道  置为 空闲  这样就符合 luinx  复用
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 主线程去调用这个查询业务
        //selectDate();

        for (int i = 0; i < 2400; i++) {
            new Thread(() -> {
                //查询业务
                selectDate();
            }).start();
        }
    }

}
